package intercepter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

public class FirstIntercepter implements HandlerInterceptor {

	/**
	 * 在执行某个方法前调用：
	 * 返回true： 将会继续调用后续的拦截器
	 * 返回false：终止调用，不会调用后续拦截器
	 * 
	 * 动能：权限，事物，日志
	 */
	@Override
	public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
		System.out.println("[FirstIntercepter]"+"preHandle");
		return true;
	}
	
	/**
	 * 在完成某个方法后，在渲染视图之前调用；主要可以操作【request】
	 * 功能：可以对请求域的属性或者视图做出修改
	 */
	@Override
	public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
			throws Exception {
		System.out.println("[FirstIntercepter]"+"postHandle");
		
	}
	
	/**
	 * 在渲染视图之后调用
	 * 功能：对于资源做释放处理
	 */
	@Override
	public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
			throws Exception {
		System.out.println("[FirstIntercepter]"+"afterCompletion");
	}


}
